package com.newly.center.sys.service.loginRecord.api;

import com.newly.common.base.entity.PageUtils;
import com.newly.common.base.entity.sys.loginRecord.dto.LoginRecordDto;
import com.newly.common.base.entity.sys.loginRecord.po.LoginRecordPo;
import com.newly.common.base.entity.sys.loginRecord.vo.LoginRecordVo;

import java.util.List;

/**
 * @program: newly-parent
 * @description: 登录历史
 * @author: guan
 * @create: 2022-02-18 10:05
 */
public interface ILoginRecordService {
    /**
     * 添加操作日志
     *
     * @param loginRecordDto 操作日志数据
     * @return 添加成功返回true
     */
    boolean save(LoginRecordDto loginRecordDto);

    /**
     * 查询登录历史列表
     *
     * @param offset   页码
     * @param limit    页数
     * @param fromTime 登录开始时间
     * @param toTime   登录结束时间
     * @param keyword  关键字
     * @return PageUtils List LoginRecordPo.class
     */
    PageUtils list(Integer offset, Integer limit, String fromTime, String toTime, String keyword);

    /**
     * 通过id查询登录历史
     *
     * @param loginRecordId 登录历史id
     * @return LoginRecordPo.class
     */
    LoginRecordPo getById(Long loginRecordId);

    /**
     * 通过id查询登录历史
     *
     * @param loginRecordIds 登录历史id
     * @return List LoginRecordPo.class
     */
    List<LoginRecordPo> getByIds(List<Long> loginRecordIds);

    /**
     * 通过id查询登录历史
     *
     * @param loginRecordIds 登录历史id
     * @return 删除成功返回true
     */
    boolean removeByIds(List<Long> loginRecordIds);

    /**
     * 清空登录历史
     *
     * @return 清空成功返回true
     */
    boolean clear();

    /**
     * 修改登出时间
     *
     * @return 修改成功返回true
     */
    boolean modifyEndTime();
}
